package ebcs.database.bean;

import java.util.ArrayList;
import java.util.List;

public class BsUserNeedRelExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public BsUserNeedRelExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andRouidIsNull() {
            addCriterion("ROUID is null");
            return (Criteria) this;
        }

        public Criteria andRouidIsNotNull() {
            addCriterion("ROUID is not null");
            return (Criteria) this;
        }

        public Criteria andRouidEqualTo(String value) {
            addCriterion("ROUID =", value, "rouid");
            return (Criteria) this;
        }

        public Criteria andRouidNotEqualTo(String value) {
            addCriterion("ROUID <>", value, "rouid");
            return (Criteria) this;
        }

        public Criteria andRouidGreaterThan(String value) {
            addCriterion("ROUID >", value, "rouid");
            return (Criteria) this;
        }

        public Criteria andRouidGreaterThanOrEqualTo(String value) {
            addCriterion("ROUID >=", value, "rouid");
            return (Criteria) this;
        }

        public Criteria andRouidLessThan(String value) {
            addCriterion("ROUID <", value, "rouid");
            return (Criteria) this;
        }

        public Criteria andRouidLessThanOrEqualTo(String value) {
            addCriterion("ROUID <=", value, "rouid");
            return (Criteria) this;
        }

        public Criteria andRouidLike(String value) {
            addCriterion("ROUID like", value, "rouid");
            return (Criteria) this;
        }

        public Criteria andRouidNotLike(String value) {
            addCriterion("ROUID not like", value, "rouid");
            return (Criteria) this;
        }

        public Criteria andRouidIn(List<String> values) {
            addCriterion("ROUID in", values, "rouid");
            return (Criteria) this;
        }

        public Criteria andRouidNotIn(List<String> values) {
            addCriterion("ROUID not in", values, "rouid");
            return (Criteria) this;
        }

        public Criteria andRouidBetween(String value1, String value2) {
            addCriterion("ROUID between", value1, value2, "rouid");
            return (Criteria) this;
        }

        public Criteria andRouidNotBetween(String value1, String value2) {
            addCriterion("ROUID not between", value1, value2, "rouid");
            return (Criteria) this;
        }

        public Criteria andCreateDateIsNull() {
            addCriterion("CREATE_DATE is null");
            return (Criteria) this;
        }

        public Criteria andCreateDateIsNotNull() {
            addCriterion("CREATE_DATE is not null");
            return (Criteria) this;
        }

        public Criteria andCreateDateEqualTo(String value) {
            addCriterion("CREATE_DATE =", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotEqualTo(String value) {
            addCriterion("CREATE_DATE <>", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateGreaterThan(String value) {
            addCriterion("CREATE_DATE >", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateGreaterThanOrEqualTo(String value) {
            addCriterion("CREATE_DATE >=", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLessThan(String value) {
            addCriterion("CREATE_DATE <", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLessThanOrEqualTo(String value) {
            addCriterion("CREATE_DATE <=", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLike(String value) {
            addCriterion("CREATE_DATE like", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotLike(String value) {
            addCriterion("CREATE_DATE not like", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateIn(List<String> values) {
            addCriterion("CREATE_DATE in", values, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotIn(List<String> values) {
            addCriterion("CREATE_DATE not in", values, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateBetween(String value1, String value2) {
            addCriterion("CREATE_DATE between", value1, value2, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotBetween(String value1, String value2) {
            addCriterion("CREATE_DATE not between", value1, value2, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("CREATE_TIME is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("CREATE_TIME is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(String value) {
            addCriterion("CREATE_TIME =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(String value) {
            addCriterion("CREATE_TIME <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(String value) {
            addCriterion("CREATE_TIME >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(String value) {
            addCriterion("CREATE_TIME >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(String value) {
            addCriterion("CREATE_TIME <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(String value) {
            addCriterion("CREATE_TIME <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLike(String value) {
            addCriterion("CREATE_TIME like", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotLike(String value) {
            addCriterion("CREATE_TIME not like", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<String> values) {
            addCriterion("CREATE_TIME in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<String> values) {
            addCriterion("CREATE_TIME not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(String value1, String value2) {
            addCriterion("CREATE_TIME between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(String value1, String value2) {
            addCriterion("CREATE_TIME not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUserNoIsNull() {
            addCriterion("USER_NO is null");
            return (Criteria) this;
        }

        public Criteria andUserNoIsNotNull() {
            addCriterion("USER_NO is not null");
            return (Criteria) this;
        }

        public Criteria andUserNoEqualTo(String value) {
            addCriterion("USER_NO =", value, "userNo");
            return (Criteria) this;
        }

        public Criteria andUserNoNotEqualTo(String value) {
            addCriterion("USER_NO <>", value, "userNo");
            return (Criteria) this;
        }

        public Criteria andUserNoGreaterThan(String value) {
            addCriterion("USER_NO >", value, "userNo");
            return (Criteria) this;
        }

        public Criteria andUserNoGreaterThanOrEqualTo(String value) {
            addCriterion("USER_NO >=", value, "userNo");
            return (Criteria) this;
        }

        public Criteria andUserNoLessThan(String value) {
            addCriterion("USER_NO <", value, "userNo");
            return (Criteria) this;
        }

        public Criteria andUserNoLessThanOrEqualTo(String value) {
            addCriterion("USER_NO <=", value, "userNo");
            return (Criteria) this;
        }

        public Criteria andUserNoLike(String value) {
            addCriterion("USER_NO like", value, "userNo");
            return (Criteria) this;
        }

        public Criteria andUserNoNotLike(String value) {
            addCriterion("USER_NO not like", value, "userNo");
            return (Criteria) this;
        }

        public Criteria andUserNoIn(List<String> values) {
            addCriterion("USER_NO in", values, "userNo");
            return (Criteria) this;
        }

        public Criteria andUserNoNotIn(List<String> values) {
            addCriterion("USER_NO not in", values, "userNo");
            return (Criteria) this;
        }

        public Criteria andUserNoBetween(String value1, String value2) {
            addCriterion("USER_NO between", value1, value2, "userNo");
            return (Criteria) this;
        }

        public Criteria andUserNoNotBetween(String value1, String value2) {
            addCriterion("USER_NO not between", value1, value2, "userNo");
            return (Criteria) this;
        }

        public Criteria andNeedNoIsNull() {
            addCriterion("NEED_NO is null");
            return (Criteria) this;
        }

        public Criteria andNeedNoIsNotNull() {
            addCriterion("NEED_NO is not null");
            return (Criteria) this;
        }

        public Criteria andNeedNoEqualTo(String value) {
            addCriterion("NEED_NO =", value, "needNo");
            return (Criteria) this;
        }

        public Criteria andNeedNoNotEqualTo(String value) {
            addCriterion("NEED_NO <>", value, "needNo");
            return (Criteria) this;
        }

        public Criteria andNeedNoGreaterThan(String value) {
            addCriterion("NEED_NO >", value, "needNo");
            return (Criteria) this;
        }

        public Criteria andNeedNoGreaterThanOrEqualTo(String value) {
            addCriterion("NEED_NO >=", value, "needNo");
            return (Criteria) this;
        }

        public Criteria andNeedNoLessThan(String value) {
            addCriterion("NEED_NO <", value, "needNo");
            return (Criteria) this;
        }

        public Criteria andNeedNoLessThanOrEqualTo(String value) {
            addCriterion("NEED_NO <=", value, "needNo");
            return (Criteria) this;
        }

        public Criteria andNeedNoLike(String value) {
            addCriterion("NEED_NO like", value, "needNo");
            return (Criteria) this;
        }

        public Criteria andNeedNoNotLike(String value) {
            addCriterion("NEED_NO not like", value, "needNo");
            return (Criteria) this;
        }

        public Criteria andNeedNoIn(List<String> values) {
            addCriterion("NEED_NO in", values, "needNo");
            return (Criteria) this;
        }

        public Criteria andNeedNoNotIn(List<String> values) {
            addCriterion("NEED_NO not in", values, "needNo");
            return (Criteria) this;
        }

        public Criteria andNeedNoBetween(String value1, String value2) {
            addCriterion("NEED_NO between", value1, value2, "needNo");
            return (Criteria) this;
        }

        public Criteria andNeedNoNotBetween(String value1, String value2) {
            addCriterion("NEED_NO not between", value1, value2, "needNo");
            return (Criteria) this;
        }

        public Criteria andNeedUseTimeIsNull() {
            addCriterion("NEED_USE_TIME is null");
            return (Criteria) this;
        }

        public Criteria andNeedUseTimeIsNotNull() {
            addCriterion("NEED_USE_TIME is not null");
            return (Criteria) this;
        }

        public Criteria andNeedUseTimeEqualTo(String value) {
            addCriterion("NEED_USE_TIME =", value, "needUseTime");
            return (Criteria) this;
        }

        public Criteria andNeedUseTimeNotEqualTo(String value) {
            addCriterion("NEED_USE_TIME <>", value, "needUseTime");
            return (Criteria) this;
        }

        public Criteria andNeedUseTimeGreaterThan(String value) {
            addCriterion("NEED_USE_TIME >", value, "needUseTime");
            return (Criteria) this;
        }

        public Criteria andNeedUseTimeGreaterThanOrEqualTo(String value) {
            addCriterion("NEED_USE_TIME >=", value, "needUseTime");
            return (Criteria) this;
        }

        public Criteria andNeedUseTimeLessThan(String value) {
            addCriterion("NEED_USE_TIME <", value, "needUseTime");
            return (Criteria) this;
        }

        public Criteria andNeedUseTimeLessThanOrEqualTo(String value) {
            addCriterion("NEED_USE_TIME <=", value, "needUseTime");
            return (Criteria) this;
        }

        public Criteria andNeedUseTimeLike(String value) {
            addCriterion("NEED_USE_TIME like", value, "needUseTime");
            return (Criteria) this;
        }

        public Criteria andNeedUseTimeNotLike(String value) {
            addCriterion("NEED_USE_TIME not like", value, "needUseTime");
            return (Criteria) this;
        }

        public Criteria andNeedUseTimeIn(List<String> values) {
            addCriterion("NEED_USE_TIME in", values, "needUseTime");
            return (Criteria) this;
        }

        public Criteria andNeedUseTimeNotIn(List<String> values) {
            addCriterion("NEED_USE_TIME not in", values, "needUseTime");
            return (Criteria) this;
        }

        public Criteria andNeedUseTimeBetween(String value1, String value2) {
            addCriterion("NEED_USE_TIME between", value1, value2, "needUseTime");
            return (Criteria) this;
        }

        public Criteria andNeedUseTimeNotBetween(String value1, String value2) {
            addCriterion("NEED_USE_TIME not between", value1, value2, "needUseTime");
            return (Criteria) this;
        }

        public Criteria andStageIsNull() {
            addCriterion("STAGE is null");
            return (Criteria) this;
        }

        public Criteria andStageIsNotNull() {
            addCriterion("STAGE is not null");
            return (Criteria) this;
        }

        public Criteria andStageEqualTo(String value) {
            addCriterion("STAGE =", value, "stage");
            return (Criteria) this;
        }

        public Criteria andStageNotEqualTo(String value) {
            addCriterion("STAGE <>", value, "stage");
            return (Criteria) this;
        }

        public Criteria andStageGreaterThan(String value) {
            addCriterion("STAGE >", value, "stage");
            return (Criteria) this;
        }

        public Criteria andStageGreaterThanOrEqualTo(String value) {
            addCriterion("STAGE >=", value, "stage");
            return (Criteria) this;
        }

        public Criteria andStageLessThan(String value) {
            addCriterion("STAGE <", value, "stage");
            return (Criteria) this;
        }

        public Criteria andStageLessThanOrEqualTo(String value) {
            addCriterion("STAGE <=", value, "stage");
            return (Criteria) this;
        }

        public Criteria andStageLike(String value) {
            addCriterion("STAGE like", value, "stage");
            return (Criteria) this;
        }

        public Criteria andStageNotLike(String value) {
            addCriterion("STAGE not like", value, "stage");
            return (Criteria) this;
        }

        public Criteria andStageIn(List<String> values) {
            addCriterion("STAGE in", values, "stage");
            return (Criteria) this;
        }

        public Criteria andStageNotIn(List<String> values) {
            addCriterion("STAGE not in", values, "stage");
            return (Criteria) this;
        }

        public Criteria andStageBetween(String value1, String value2) {
            addCriterion("STAGE between", value1, value2, "stage");
            return (Criteria) this;
        }

        public Criteria andStageNotBetween(String value1, String value2) {
            addCriterion("STAGE not between", value1, value2, "stage");
            return (Criteria) this;
        }

        public Criteria andHappenDateIsNull() {
            addCriterion("HAPPEN_DATE is null");
            return (Criteria) this;
        }

        public Criteria andHappenDateIsNotNull() {
            addCriterion("HAPPEN_DATE is not null");
            return (Criteria) this;
        }

        public Criteria andHappenDateEqualTo(String value) {
            addCriterion("HAPPEN_DATE =", value, "happenDate");
            return (Criteria) this;
        }

        public Criteria andHappenDateNotEqualTo(String value) {
            addCriterion("HAPPEN_DATE <>", value, "happenDate");
            return (Criteria) this;
        }

        public Criteria andHappenDateGreaterThan(String value) {
            addCriterion("HAPPEN_DATE >", value, "happenDate");
            return (Criteria) this;
        }

        public Criteria andHappenDateGreaterThanOrEqualTo(String value) {
            addCriterion("HAPPEN_DATE >=", value, "happenDate");
            return (Criteria) this;
        }

        public Criteria andHappenDateLessThan(String value) {
            addCriterion("HAPPEN_DATE <", value, "happenDate");
            return (Criteria) this;
        }

        public Criteria andHappenDateLessThanOrEqualTo(String value) {
            addCriterion("HAPPEN_DATE <=", value, "happenDate");
            return (Criteria) this;
        }

        public Criteria andHappenDateLike(String value) {
            addCriterion("HAPPEN_DATE like", value, "happenDate");
            return (Criteria) this;
        }

        public Criteria andHappenDateNotLike(String value) {
            addCriterion("HAPPEN_DATE not like", value, "happenDate");
            return (Criteria) this;
        }

        public Criteria andHappenDateIn(List<String> values) {
            addCriterion("HAPPEN_DATE in", values, "happenDate");
            return (Criteria) this;
        }

        public Criteria andHappenDateNotIn(List<String> values) {
            addCriterion("HAPPEN_DATE not in", values, "happenDate");
            return (Criteria) this;
        }

        public Criteria andHappenDateBetween(String value1, String value2) {
            addCriterion("HAPPEN_DATE between", value1, value2, "happenDate");
            return (Criteria) this;
        }

        public Criteria andHappenDateNotBetween(String value1, String value2) {
            addCriterion("HAPPEN_DATE not between", value1, value2, "happenDate");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNull() {
            addCriterion("REMARK is null");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNotNull() {
            addCriterion("REMARK is not null");
            return (Criteria) this;
        }

        public Criteria andRemarkEqualTo(String value) {
            addCriterion("REMARK =", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotEqualTo(String value) {
            addCriterion("REMARK <>", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThan(String value) {
            addCriterion("REMARK >", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("REMARK >=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThan(String value) {
            addCriterion("REMARK <", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanOrEqualTo(String value) {
            addCriterion("REMARK <=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLike(String value) {
            addCriterion("REMARK like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotLike(String value) {
            addCriterion("REMARK not like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkIn(List<String> values) {
            addCriterion("REMARK in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotIn(List<String> values) {
            addCriterion("REMARK not in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkBetween(String value1, String value2) {
            addCriterion("REMARK between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotBetween(String value1, String value2) {
            addCriterion("REMARK not between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andNeedIdIsNull() {
            addCriterion("NEED_ID is null");
            return (Criteria) this;
        }

        public Criteria andNeedIdIsNotNull() {
            addCriterion("NEED_ID is not null");
            return (Criteria) this;
        }

        public Criteria andNeedIdEqualTo(String value) {
            addCriterion("NEED_ID =", value, "needId");
            return (Criteria) this;
        }

        public Criteria andNeedIdNotEqualTo(String value) {
            addCriterion("NEED_ID <>", value, "needId");
            return (Criteria) this;
        }

        public Criteria andNeedIdGreaterThan(String value) {
            addCriterion("NEED_ID >", value, "needId");
            return (Criteria) this;
        }

        public Criteria andNeedIdGreaterThanOrEqualTo(String value) {
            addCriterion("NEED_ID >=", value, "needId");
            return (Criteria) this;
        }

        public Criteria andNeedIdLessThan(String value) {
            addCriterion("NEED_ID <", value, "needId");
            return (Criteria) this;
        }

        public Criteria andNeedIdLessThanOrEqualTo(String value) {
            addCriterion("NEED_ID <=", value, "needId");
            return (Criteria) this;
        }

        public Criteria andNeedIdLike(String value) {
            addCriterion("NEED_ID like", value, "needId");
            return (Criteria) this;
        }

        public Criteria andNeedIdNotLike(String value) {
            addCriterion("NEED_ID not like", value, "needId");
            return (Criteria) this;
        }

        public Criteria andNeedIdIn(List<String> values) {
            addCriterion("NEED_ID in", values, "needId");
            return (Criteria) this;
        }

        public Criteria andNeedIdNotIn(List<String> values) {
            addCriterion("NEED_ID not in", values, "needId");
            return (Criteria) this;
        }

        public Criteria andNeedIdBetween(String value1, String value2) {
            addCriterion("NEED_ID between", value1, value2, "needId");
            return (Criteria) this;
        }

        public Criteria andNeedIdNotBetween(String value1, String value2) {
            addCriterion("NEED_ID not between", value1, value2, "needId");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}